آموزش جامع فلاتر و دارت برای ساخت اپلیکیشن‌های iOS و اندروید - ویرایش دوم [ویدئویی] - آخرین آپدیت

دانلود Learn Flutter and Dart to Build iOS and Android Apps - Second Edition [Video]

نکته: ممکن هست محتوای این صفحه بروز نباشد ولی دانلود دوره آخرین آپدیت می باشد.
نمونه ویدیوها:
توضیحات دوره: این دوره جامع فلاتر فرصتی استثنایی برای کشف قدرت Flutter و Dart جهت خلق اپلیکیشن‌های موبایل خیره‌کننده و با کارایی بالا برای هر دو پلتفرم iOS و اندروید است. در این دوره، دستورالعمل‌های دقیق نصب برای سیستم‌عامل‌های macOS و ویندوز، معرفی جامع فلاتر، دارت و مفهوم ویجت‌ها و همچنین بررسی ویجت‌های داخلی به همراه آموزش نحوه افزودن ویجت‌های اختصاصی ارائه می‌شود. شما درک عمیقی از مبانی فلاتر و دارت به دست خواهید آورد؛ از جمله نحوه تحلیل یک پروژه جدید، وارد کردن قابلیت‌ها از پکیج‌ها، استفاده از اولین ویجت و پاس دادن مقادیر به توابع. علاوه بر این، نحوه کار با توابع سازنده (Constructor)، ترفندهای دیباگ کردن، ناوبری بین صفحات با تب‌ها، منوهای کناری (Drawer) و ناوبری مبتنی بر استک، راهکارهای مدیریت وضعیت (State Management)، مدیریت و اعتبارسنجی ورودی‌های کاربر، اتصال اپلیکیشن به سرورهای بک‌اند از طریق درخواست‌های HTTP، احراز هویت کاربران، افزودن گوگل مپ، استفاده از قابلیت‌های سخت‌افزاری دستگاه مانند دوربین، افزودن انیمیشن‌های زیبا و انتقال‌های بین صفحه‌ای، آپلود تصویر و نوتیفیکیشن‌های Push را خواهید آموخت. در طول این دوره، چندین اپلیکیشن نمونه از سطح ساده تا پیچیده خواهید ساخت تا در نهایت مهارت‌های لازم برای توسعه اپلیکیشن‌های مستقل iOS و اندروید را با استفاده از فلاتر کسب کنید. آنچه در این دوره می‌آموزید: - درک عمیق فلاتر، دارت و مفهوم ویجت‌ها - اتصال اپلیکیشن به سرورهای بک‌اند با درخواست‌های HTTP - استفاده از قابلیت‌های بومی دستگاه مانند دوربین - افزودن انیمیشن‌های جذاب و ترنزیشن‌های صفحه‌ای - آپلود تصاویر و ارسال نوتیفیکیشن‌های دستی و خودکار - نحوه ادغام گوگل مپ در اپلیکیشن این دوره برای توسعه‌دهندگان مبتدی و باتجربه که قصد دارند با یک زبان برنامه‌نویسی برای هر دو پلتفرم iOS و اندروید اپلیکیشن توسعه دهند، مناسب است. همچنین برای توسعه‌دهندگان متخصص iOS یا اندروید که به دنبال ساخت اپلیکیشن‌های Cross-platform هستند، ایده‌آل است. اگرچه دانش پایه برنامه‌نویسی مفید است اما اجباری نیست و هیچ تجربه قبلی در فلاتر، دارت یا زبان‌های Swift/ObjectiveC و Java/Kotlin نیاز نیست. با غوطه‌ور شدن در دنیای فلاتر و دارت، به یک توسعه‌دهنده پیشرفته تبدیل شوید و با استفاده از مثال‌های عملی و پروژه‌های واقعی، مهارت‌های خود را ارتقا دهید.

سرفصل ها و درس ها

مقدمه Introduction

  • مقدمه Introduction

  • به این دوره خوش آمدید! Welcome to This Course!

  • فلاتر چیست؟ What Is Flutter?

  • فلاتر از دارت استفاده می‌کند! Flutter Uses Dart!

  • یک کدبیس، چندین پلتفرم One Codebase, Multiple Platforms

  • مرور کلی نصب فلاتر Flutter Setup - Overview

  • نصب در ویندوز Windows Setup

  • نصب در macOS macOS Setup

  • ایجاد پروژه و تنظیم ویرایشگر کد برای توسعه فلاتر Project Creation and Setting Up a Code Editor for Flutter Development

  • اجرای اولین اپلیکیشن فلاتر Running a First Flutter App

  • درک متریال دیزاین (Material Design) Understanding Material Design

  • درباره این دوره About This Course

مبانی فلاتر و دارت ۱: ایجاد یک پایه محکم (اپلیکیشن تاس) Flutter and Dart Basics I - Getting a Solid Foundation (Roll Dice App)

  • مقدمه ماژول Module Introduction

  • تحلیل یک پروژه جدید فلاتر Analyzing a New Flutter Project

  • تبدیل دارت به کد ماشین Form Dart to Machine Code

  • زبان‌های برنامه‌نویسی چگونه کار می‌کنند؟ How Programming Languages Work

  • شروع از صفر: درک توابع Starting from Scratch: Understanding Functions

  • وارد کردن قابلیت‌ها از پکیج‌ها Importing Features from Packages

  • اپلیکیشن‌های فلاتر چگونه اجرا می‌شوند؟ How Flutter Apps Start

  • درک ویجت‌ها Understanding Widgets

  • استفاده از اولین ویجت و پاس دادن مقادیر به توابع Using a First Widget and Passing Values to Functions

  • آرگومان‌های موقعیتی و نام‌گذاری شده Positional and Named Arguments

  • ترکیب چندین ویجت Combining Multiple Widgets

  • درک مقادیر const Understanding "const" Values

  • ساخت درخت‌های ویجت پیچیده‌تر Building More Complex Widget Trees

  • درک انواع مقادیر (Value Types) Understanding Value Types

  • پیکربندی ویجت‌ها و درک اشیاء Configuring Widgets and Understanding Objects

  • کار با اشیاء پیکربندی (اشیاء غیر ویجتی) Working with "Configuration Objects" (Non-Widget Objects)

  • ژنریک‌ها، لیست‌ها و افزودن رنگ‌های گرادینت Generics, Lists, and Adding Gradient Colors

  • نحوه پیکربندی ویجت‌ها و اشیاء How to Configure Widgets and Objects

  • تمرین: استایل‌دهی به متن Practice: Styling Text

  • به سوی ویجت‌های سفارشی: چرا به آن‌ها نیاز داریم؟ Onward to Custom Widgets: Why Do You Need Them?

  • درک کلاس‌ها Understanding Classes

  • ساخت ویجت‌های سفارشی Building Custom Widgets

  • کار با توابع سازنده (Constructor) Working with Constructor Functions

  • تقسیم کد در فایل‌های مختلف Splitting Code Across Files

  • تمرین: ساخت یک ویجت سفارشی Practice: Create a Custom Widget

  • معرفی متغیرها Introducing Variables

  • متغیرها و انواع: ترکیب دو مفهوم کلیدی Variables and Types - Combining Two Key Concepts

  • final و const: انواع خاص متغیرها "final" and "const" - Special Kinds of "Variables"

  • متغیرهای نمونه (Properties) و ویجت‌های قابل پیکربندی Instance Variables (Properties) and Configurable Widgets

  • تمرین: ویجت‌های قابل استفاده مجدد و توابع سازنده Practice: Reusable Widgets and Constructor Functions

  • نمایش تصاویر و استفاده از چندین تابع سازنده Displaying Images and Using Multiple Constructor Functions

  • افزودن دکمه‌ها و استفاده از توابع به عنوان مقدار Adding Buttons and Using Functions As Values

  • استایل‌دهی به دکمه‌ها و کار با Padding Styling Buttons and Working with Padding

  • چگونه ویجت‌های تعاملی را اشتباه نسازیم How NOT to Build Interactive Widgets

  • معرفی Stateful Widgetها Introducing Stateful Widgets

  • تولید اعداد تصادفی Generating Random Numbers

  • جمع‌بندی ماژول Module Summary

مبانی فلاتر و دارت ۲: بررسی عمیق مفاهیم (اپلیکیشن کوییز) Flutter and Dart Basics II - Fundamentals Deep Dive (Quiz App)

  • مقدمه ماژول Module Introduction

  • یک چالش برای شما! A Challenge for You!

  • راه حل چالش ۱/۲: ساخت یک ویجت Challenge Solution 1/2 - Creating a Widget

  • راه حل چالش ۲/۲: کار با ویجت‌های بیشتر Challenge Solution 2/2 - Working with More Widgets

  • افزودن آیکون به دکمه‌ها Adding Icons to Buttons

  • افزودن شفافیت به ویجت‌ها Adding Transparency to Widgets

  • تکرار و تمرین: افزودن یک Stateful Widget Repetition and Exercise: Adding a Stateful Widget

  • رندر کردن شرطی محتوا Rendering Content Conditionally

  • پذیرفتن و پاس دادن توابع به عنوان مقدار Accepting and Passing Functions as Values

  • متد initState The "initState" Method

  • استفاده از عبارت‌های Ternary و عملگرهای مقایسه‌ای Using Ternary Expressions and Comparison Operators

  • دستورات if و عملگرهای مقایسه‌ای if Statements and Comparison Operators

  • افزودن مدل داده و داده‌های تست (Dummy) Adding a Data Model and Dummy Data

  • پیکربندی ستون (Column) Configuring a Column

  • ساخت یک دکمه سفارشی و قابل استفاده مجدد Creating a Reusable, Custom Styled Button

  • دسترسی به عناصر لیست و ویژگی‌های شیء Accessing List Elements and Object Properties

  • مپ کردن لیست‌ها و استفاده از Spread Operator Mapping Lists and Using the Spread Operator

  • ترازبندی، Margin و Padding Alignment, Margin, and Padding

  • تغییر مقادیر در حافظه Mutating Values in Memory

  • مدیریت ایندکس سوالات به عنوان State Managing the Questions Index as State

  • بیشتر درباره استایل‌دهی دکمه‌ها More on Button Styling

  • استفاده از پکیج‌های Third-party و افزودن Google Fonts Using Third-Party Packages and Adding Google Fonts

  • پاس دادن داده‌ها از طریق توابع بین ویجت‌ها Passing Data Through Functions Across Widgets

  • شرط‌های بیشتر More Conditions

  • شروع کار با صفحه نتایج Getting Started with the Results Screen

  • پاس دادن داده‌ها به صفحه نتایج Passing Data to the Results Screen

  • معرفی Mapها و حلقه‌های for Introducing Maps and "for" Loops

  • دسترسی به مقادیر Map و استفاده از Type Casting Accessing Map Values and Using "Type Casting"

  • ترکیب ستون‌ها و ردیف‌ها Combining Columns and Rows

  • نجات با Expanded! Expanded to the Rescue!

  • فیلتر کردن و تحلیل لیست‌ها Filtering and Analyzing Lists

  • اسکرول کردن محتوا با SingleChildScrollView Making Content Scrollable with SingleChildScrollView

  • مبانی فلاتر و دارت: چالش کدنویسی Flutter and Dart Basics - Coding Challenge

  • مبانی فلاتر و دارت: راه حل Flutter and Dart Basics - Solution

  • فراتر از مبانی: ویژگی‌های اختیاری و مهم دارت Beyond the Basics: Optional, Important Dart Features

  • جمع‌بندی ماژول Module Summary

دیباگ کردن اپلیکیشن‌های فلاتر Debugging Flutter Apps

  • مقدمه ماژول Module Introduction

  • پروژه شروع و بررسی یک مشکل The Starting Project and a Problem

  • درک پیام‌های خطا Understanding Error Messages

  • دیباگ کردن اپلیکیشن‌ها و استفاده از Debug Mode Debugging Apps and Using "Debug Mode"

  • کار با Flutter DevTools Working with the Flutter DevTools

افزودن تعاملات، ویجت‌های بیشتر و تم‌بندی (اپلیکیشن مدیریت هزینه‌ها) Adding Interactivity, More Widgets, and Theming (Expense Tracker App)

  • مقدمه ماژول Module Introduction

  • شروع تنظیمات و زمان تکرار! Starting Setup and Repetition Time!

  • افزودن مدل داده هزینه با ID منحصربه‌فرد و بررسی Initializer Lists Adding an Expense Data Model with a Unique ID and Exploring Initializer Lists

  • معرفی Enumها Introducing Enums

  • ایجاد داده‌های تست Creating Dummy Data

  • رندر بهینه لیست‌های طولانی با ListView Efficiently Rendering Long Lists with ListView

  • استفاده از لیست‌ها در داخل لیست‌ها Using Lists Inside of Lists

  • ساخت آیتم لیست سفارشی با ویجت‌های Card و Spacer Creating a Custom List Item with the Card and Spacer Widgets

  • استفاده از آیکون‌ها و فرمت‌دهی تاریخ‌ها Using Icons and Formatting Dates

  • تنظیم AppBar با عنوان و اکشن‌ها Setting an AppBar with a Title and Actions

  • افزودن Modal Sheet و درک Context Adding a Modal Sheet and Understanding Context

  • مدیریت ورودی متنی کاربر با ویجت TextField Handling User (Text) Input with the TextField Widget

  • دریافت ورودی کاربر در هر ضربه کلید Getting User Input on Every Keystroke

  • سپردن کار به فلاتر با TextEditingController Letting Flutter do the Work with TextEditingController

  • زمان تمرین: افزودن یک ورودی جدید Time to Practice: Adding a New Input

  • راه حل تمرین Exercise Solution

  • بستن دستی مودال Closing the Modal Manually

  • نمایش Date Picker (انتخابگر تاریخ) Showing a Date Picker

  • کار با Futureها برای مدیریت داده‌های آتی Working with "Futures" for Handling Data from the Future

  • افزودن دکمه Dropdown Adding a Dropdown Button

  • ترکیب شرط‌ها با عملگرهای AND و OR Combining Conditions with AND and OR Operators

  • اعتبارسنجی ورودی کاربر و نمایش دیالوگ خطا Validating User Input and Showing an Error Dialog

  • ذخیره هزینه‌های جدید Saving New Expenses

  • ساخت مودال تمام‌صفحه Creating a Fullscreen Modal

  • استفاده از ویجت Dismissible برای حذف آیتم‌های لیست Using the Dismissible Widget for Dismissing List Items

  • نمایش و مدیریت Snackbarها Showing and Managing "Snackbars"

  • شروع کار با تم‌بندی (Theming) Getting Started with Theming

  • تنظیم و استفاده از Color Scheme Setting and Using a Color Scheme

  • تنظیم تم‌های متنی Setting Text Themes

  • استفاده از Theme Data در ویجت‌ها Using Theme Data in Widgets

  • افزودن حالت تاریک (Dark Mode) Adding Dark Mode

  • استفاده از نوع دیگری از حلقه (for in) Using Another Kind of Loop (for-in)

  • افزودن توابع سازنده جایگزین و فیلتر کردن لیست‌ها Adding Alternative Constructor Functions and Filtering Lists

  • افزودن ویجت‌های نمودار (Chart) Adding Chart Widgets

  • جمع‌بندی ماژول Module Summary

ساخت رابط‌های کاربری واکنش‌گرا و تطبیق‌پذیر (اپلیکیشن مدیریت هزینه‌ها) Building Responsive and Adaptive User Interfaces (Expense Tracker App)

  • مقدمه ماژول Module Introduction

  • واکنش‌گرایی (Responsiveness) چیست؟ What Is "Responsiveness"?

  • قفل کردن جهت دستگاه (Orientation) Locking the Device Orientation

  • به‌روزرسانی UI بر اساس فضای موجود Updating the UI Based on the Available Space

  • درک محدودیت‌های اندازه (Size Constraints) Understanding Size Constraints

  • مدیریت اورلэй‌های صفحه مانند کیبورد مجازی Handling to Screen Overlays Like the Soft Keyboard

  • درک Safe Areas Understanding "Safe Areas"

  • استفاده از ویجت LayoutBuilder Using the LayoutBuilder Widget

  • ساخت ویجت‌های تطبیق‌پذیر (Adaptive) Building Adaptive Widgets

  • جمع‌بندی ماژول Module Summary

ساختارهای داخلی فلاتر و دارت (اپلیکیشن Todo) Flutter and Dart Internals (Todo App)

  • مقدمه ماژول Module Introduction

  • سه درخت: درخت ویجت، درخت المان و درخت رندر Three Trees: Widget Tree, Element Tree, and Render Tree

  • UI چگونه به‌روزرسانی می‌شود؟ How the UI Is Updated

  • رفاکتور و استخراج ویجت‌ها برای جلوگیری از بیلد‌های غیرضروری Refactor and Extract Widgets to Avoid Unnecessary Builds

  • درک Keyها: تنظیمات Understanding Keys - Setup

  • Keyها چه مشکلی را حل می‌کنند؟ Which Problem Do Keys Solve?

  • درک و استفاده از Keyها Understanding and Using Keys

  • تغییر مقادیر در حافظه و تحلیل var, final و const Mutating Values in Memory and Making Sense of var, final, and const

  • جمع‌بندی ماژول Module Summary

ساخت اپلیکیشن‌های چند صفحه‌ای و ناوبری بین صفحات (اپلیکیشن غذاها) Building Multi-Screen Apps and Navigating Between Screens (Meals App)

  • مقدمه ماژول Module Introduction

  • تنظیمات پروژه Project Setup

  • استفاده از GridView Using a GridView

  • ویجت در مقابل صفحه Widgets Versus Screens

  • نمایش آیتم‌های دسته‌بندی در یک صفحه Displaying Category Items on a Screen

  • قابلیت کلیک کردن هر ویجت با Inkwell Making Any Widget Tappable with Inkwell

  • افزودن داده‌های غذاها Adding Meals Data

  • بارگذاری داده‌های غذاها در صفحه Loading Meals Data into a Screen

  • افزودن ناوبری بین صفحه‌ای Adding Cross-Screen Navigation

  • پاس دادن داده‌ها به صفحه مقصد Passing Data to the Target Screen

  • معرفی ویجت Stack Introducing the Stack Widget

  • بهبود ویجت MealItem Improving the MealItem Widget

  • افزودن ناوبری به صفحه جزئیات غذا Adding Navigation to the MealDetails Screen

  • بهبود صفحه جزئیات غذا Improving the MealDetails Screen

  • افزودن ناوبری مبتنی بر تب Adding Tab-Based Navigation

  • پاس دادن توابع از طریق لایه‌های مختلف ویجت‌ها (برای مدیریت وضعیت) Passing Functions Through Multiple Layers of Widgets (For State Management)

  • مدیریت داده‌ها و وضعیت در سطح اپلیکیشن Managing App-Wide State and Data

  • افزودن منوی کناری (Side Drawer) Adding a Side Drawer

  • بستن دستی منوی Drawer Closing the Drawer Manually

  • افزودن آیتم فیلتر Adding a Filter Item

  • جایگزینی صفحات (به جای Push کردن) Replacing Screens (Instead of Pushing)

  • افزودن گزینه‌های فیلتر بیشتر Adding More Filter Options

  • بازگرداندن داده‌ها هنگام خروج از صفحه Returning Data When Leaving a Screen

  • خواندن و استفاده از داده‌های بازگشتی Reading and Using Returned Data

  • اعمال فیلترها Applying Filters

  • جمع‌بندی ماژول Module Summary

مدیریت وضعیت در سطح اپلیکیشن (اپلیکیشن غذاها) Managing App-Wide State (Meals App)

  • مقدمه ماژول Module Introduction

  • مشکل چیست؟ What's the Problem?

  • نصب راهکار: Riverpod Installing the Solution: Riverpod

  • مدیریت وضعیت با Riverpod چگونه کار می‌کند؟ How State Management with Riverpod Works

  • ایجاد یک Provider Creating a Provider

  • استفاده از Provider Using a Provider

  • ایجاد Provider پیچیده‌تر با StateNotifier Creating a More Complex Provider with StateNotifier

  • استفاده از FavoritesProvider Using the FavoritesProvider

  • اجرای متد Notifier Triggering a Notifier Method

  • شروع کار با Provider دیگر Getting Started with Another Provider

  • ترکیب وضعیت محلی و وضعیت مدیریت شده توسط Provider Combining Local and Provider-Managed State

  • برون‌سپاری وضعیت به Provider Outsourcing State into the Provider

  • اتصال چندین Provider به یکدیگر (Dependent Providers) Connecting Multiple Providers with Each Other (Dependent Providers)

  • تغییر دکمه مورد علاقه بر اساس وضعیت Provider Swapping the "Favorite Button" Based on Provider State

  • جمع‌بندی ماژول Module Summary

افزودن انیمیشن‌ها (اپلیکیشن غذاها) Adding Animations (Meals App)

  • مقدمه ماژول Module Introduction

  • تنظیمات و درک انیمیشن‌های صریح (Explicit) در مقابل ضمنی (Implicit) Setup and Understanding Explicit Versus Implicit Animations

  • انیمیشن‌های صریح: افزودن Animation Controller Explicit Animations: Adding an Animation Controller

  • انیمیشن‌های صریح: اجرای انیمیشن با AnimatedBuilder Explicit Animations: Playing the Animation with AnimatedBuilder

  • بهینه‌سازی انیمیشن‌های صریح Finetuning Explicit Animations

  • شروع کار با انیمیشن‌های ضمنی Getting Started with Implicit Animations

  • پیکربندی انیمیشن‌های ضمنی Configuring Implicit Animations

  • افزودن ترنزیشن‌های چند صفحه‌ای Adding Multi-Screen Transitions

  • جمع‌بندی ماژول Module Summary

مدیریت ورودی‌های کاربر و کار با فرم‌ها (اپلیکیشن لیست خرید) Handling User Input and Working with Forms (Shopping List App)

  • مقدمه ماژول Module Introduction

  • تنظیمات و یک چالش برای شما Setup and a Challenge for You

  • راه حل چالش ۱: ساخت و استفاده از مدل‌ها Challenge Solution 1 - Building and Using Models

  • راه حل چالش ۲: ساخت UI لیست Challenge Solution 2 - Building the List UI

  • افزودن صفحه آیتم جدید (New Item) Adding a "New Item" Screen

  • ویجت‌های Form و TextFormField The Form and TextFormField Widgets

  • دکمه Dropdown متصل به فرم A Form-Aware Dropdown Button

  • افزودن دکمه‌ها به فرم Adding Buttons to a Form

  • افزودن منطق اعتبارسنجی Adding Validation Logic

  • دسترسی به فرم از طریق Global Key Getting Form Access Through a Global Key

  • استخراج مقادیر وارد شده Extracting Entered Values

  • پاس دادن داده‌ها بین صفحات Passing Data Between Screens

  • راه حل نهایی چالش Final Challenge Solution

  • جمع‌بندی ماژول Module Summary

اتصال به بک‌اند و ارسال درخواست‌های HTTP (اپلیکیشن لیست خرید) Connecting a Backend and Sending HTTP Requests (Shopping List App)

  • مقدمه ماژول Module Introduction

  • بک‌اند چیست و چرا به آن نیاز داریم؟ What's a Backend? And Why Would You Want One?

  • HTTP چیست و چگونه کار می‌کند؟ What Is HTTP and How Does It Work?

  • راه اندازی یک بک‌اند تست (Firebase) Setting Up a Dummy Backend (Firebase)

  • افزودن پکیج HTTP Adding the HTTP Package

  • ارسال درخواست POST به بک‌اند Sending a POST Request to the Backend

  • کار با درخواست و انتظار برای پاسخ Working with the Request and Waiting for the Response

  • دریافت و تبدیل داده‌ها Fetching and Transforming Data

  • جلوگیری از درخواست‌های غیرضروری Avoiding Unnecessary Requests

  • مدیریت وضعیت در حال بارگذاری (Loading) Managing the Loading State

  • مدیریت پاسخ‌های خطا Error Response Handling

  • ارسال درخواست‌های DELETE Sending DELETE Requests

  • مدیریت حالت عدم وجود داده (No Data) Handling the "No Data" Case

  • مدیریت بهتر خطاها Better Error Handling

  • جمع‌بندی ماژول Module Summary

  • استفاده از ویجت FutureBuilder Using the FutureBuilder Widget

استفاده از قابلیت‌های بومی دستگاه مانند دوربین (اپلیکیشن مکان‌های مورد علاقه) Using Native Device Features (For Example, Camera) (Favorite Places App)

  • مقدمه ماژول Module Introduction

  • تنظیمات و یک چالش برای شما! Setup and a Challenge for You!

  • افزودن مدل مکان (راه حل چالش ۱/۶) Adding a Place Model (Challenge Solution 1/6)

  • افزودن صفحه مکان‌ها (راه حل چالش ۲/۶) Adding a "Places" Screen (Challenge Solution 2/6)

  • افزودن صفحه افزودن مکان (راه حل چالش ۳/۶) Adding an "Add Place" Screen (Challenge Solution 3/6)

  • افزودن riverpod و یک Provider (راه حل چالش ۴/۶) Adding "riverpod" and a Provider (Challenge Solution 4/6)

  • افزودن مکان‌ها با Provider و نمایش آن‌ها (راه حل چالش ۵/۶) Adding Places with Provider and Displaying Places (Challenge Solution 5/6)

  • افزودن صفحه جزئیات مکان (راه حل چالش ۶/۶) Adding a "Place Details" Screen (Challenge Solution 6/6)

  • افزودن ورودی انتخاب تصویر Adding a "Pick an Image" Input

  • نصب پکیج Image Picker Installing the "Image Picker" Package

  • استفاده از دوربین دستگاه برای عکس‌برداری Using the Device Camera for Taking Pictures

  • افزودن تصویر انتخاب شده به مدل و فرم افزودن مکان Adding the Picked Image to the Model and "Add Place" Form

  • پیش‌نمایش تصویر انتخاب شده Previewing the Picked Image

  • افزودن پکیج location و شروع کار با ویجت دریافت مکان Adding the "location" Package and Starting with the "Get Location" Input Widget

  • دریافت مکان فعلی کاربر Getting the User's Current Location

  • تنظیمات استفاده از Google Maps API Using the Google Maps API – Setup

  • استفاده از Geocoding API گوگل Using Google's Geocoding API

  • ذخیره داده‌های مکان در مدل Storing the Location Data in the Model

  • نمایش اسنپ‌شات پیش‌نمایش مکان از طریق گوگل Displaying a Location Preview Map Snapshot Through Google

  • استفاده از مکان انتخاب شده در فرم Using the Picked Location in the Form

  • خروجی گرفتن از داده‌های مکان Outputting the Location Data

  • نصب و پیکربندی پکیج گوگل مپ Installing and Configuring the Google Maps Package

  • افزودن صفحه نقشه Adding a "Map" Screen

  • نمایش مکان انتخاب شده روی نقشه پویا Displaying the Picked Place on a Dynamic Map

  • مدیریت ضربات روی نقشه برای انتخاب دستی مکان Handling Map Taps for Selecting a Location Manually

  • استفاده از صفحه نقشه در فرم افزودن مکان Using the Map Screen in the "Add Place" Form

  • نصب پکیج‌های ذخیره‌سازی داده محلی (روی دستگاه) Installing Packages for Local (On-Device) Data Storage

  • ذخیره محلی تصویر انتخاب شده Storing the Picked Image Locally

  • ذخیره داده‌های مکان در دیتابیس SQL محلی Storing Place Data in a (On-Device) SQL Database

  • بارگذاری داده‌ها از دیتابیس SQL Loading Data from the SQL Database

  • استفاده از FutureBuilder برای بارگذاری داده‌ها Using a FutureBuilder for Loading Data

  • جمع‌بندی ماژول Module Summary

نوتیفیکیشن‌های Push و فراتر از آن: ساخت اپلیکیشن چت با فلاتر و فایربیس Push Notifications and More: Building a Chat App with Flutter and Firebase

  • مقدمه ماژول Module Introduction

  • تنظیمات اپلیکیشن و فایربیس App and Firebase Setup

  • افزودن صفحه احراز هویت Adding an Authentication Screen

  • افزودن دکمه‌ها و حالت‌ها به صفحه احراز هویت Adding Buttons and Modes to the Authentication Screen

  • اعتبارسنجی ورودی کاربر Validating User Input

  • تنظیمات Firebase CLI و SDK ۱/۲ Firebase CLI and SDK Setup 1/2

  • تنظیمات Firebase CLI و SDK ۲/۲ Firebase CLI and SDK Setup 2/2

  • ثبت‌نام کاربران Signing Users Up

  • ورود کاربران Logging Users In

  • نمایش صفحات مختلف بر اساس وضعیت احراز هویت Showing Different Screens Based on the Authentication State

  • افزودن صفحه Splash (صفحه بارگذاری) Adding a Splash Screen (Loading Screen)

  • افزودن قابلیت خروج کاربر Adding User Logout

  • آپلود تصویر: تنظیمات و اولین گام‌ها Image Upload: Setup and First Steps

  • افزودن ویجت انتخاب تصویر کاربر Adding a User Image Picker Widget

  • استفاده از پکیج ImagePicker Using the ImagePicker Package

  • مدیریت تصویر انتخاب شده در فرم احراز هویت Managing the Selected Image in the Authentication Form

  • آپلود تصاویر به فایربیس Uploading Images to Firebase

  • نمایش اسپینر بارگذاری هنگام آپلود Showing a Loading Spinner Whilst Uploading

  • افزودن دیتابیس ریموت: تنظیمات Firestore Adding a Remote Database: Firestore Setup

  • ارسال داده‌ها به Firestore Sending Data to Firestore

  • ذخیره نام کاربری Storing a Username

  • افزودن ویجت‌های پیام‌های چت و ورودی Adding ChatMessages and Input Widgets

  • ارسال و دریافت داده‌ها از Firestore Sending and Reading Data to and from Firestore

  • بارگذاری و نمایش پیام‌های چت به صورت Stream Loading and Displaying Chat Messages as a Stream

  • استایل‌دهی به حباب‌های پیام چت Styling Chat Message Bubbles

  • نوتیفیکیشن‌های Push: تنظیمات و اولین گام‌ها Push Notifications - Setup and First Steps

  • درخواست مجوزها و دریافت توکن آدرس Requesting Permissions and Getting an Address Token

  • تست نوتیفیکیشن‌های Push Testing Push Notifications

  • کار با موضوعات (Topics) نوتیفیکیشن Working with Notification Topics

  • ارسال خودکار نوتیفیکیشن‌ها از طریق Cloud Functions Sending Push Notifications Automatically Through Cloud Functions

  • جمع‌بندی ماژول Module Summary

گام‌های بعدی و جمع‌بندی Next Steps and Roundup

  • جمع‌بندی نهایی دوره Course Roundup

نمایش نظرات

آموزش جامع فلاتر و دارت برای ساخت اپلیکیشن‌های iOS و اندروید - ویرایش دوم [ویدئویی]
جزییات دوره
29h 53m
288
Packtpub Packtpub
(آخرین آپدیت)
از 5
ندارد
دارد
دارد
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Academind by Maximilian Schwarzmüller GmbH Academind by Maximilian Schwarzmüller GmbH

آکادمیند GMBH آکادمیند با گذراندن دوره ها و دانش مربیان موفق ، سعی در ارائه آموزش آنلاین با کیفیت بالا دارد. این پلتفرم موضوعاتی مانند توسعه وب ، تجزیه و تحلیل داده ها و موارد دیگر را به روشی سرگرم کننده و جذاب پوشش می دهد. Maximilian Schwarzmüller از سن 13 سالگی ، او هرگز یادگیری مهارت ها و زبانهای جدید برنامه نویسی را متوقف نکرده است. در روزهای ابتدایی خود ، او شروع به ایجاد وب سایت ها به سادگی برای تفریح ​​کرد. این اشتیاق باقی مانده است و تصمیم خود را برای کار به عنوان یک توسعه دهنده و مشاور آزاد وب شکل داده است. اگرچه او توسعه وب را در پس زمینه (PHP با Laravel و Nodejs) آغاز کرد ، اما او در بسیاری از پروژه ها با استفاده از چارچوب های مدرن مانند React ، Angular و Vuejs 2 پیشرفت کرده است. با ارزش ترین تجربه برای او این است که ببینیم مردم چگونه شغل های جدید و بهتری پیدا می کنند ، برنامه های وب هیجان انگیز ایجاد می کنند ، پروژه های شگفت انگیزی را به دست می آورند یا با کمک محتوای وی از سرگرمی خود لذت می برند.